<?php

namespace app\common\exception;

use app\common\MyLog;
use think\Exception;



/** 
 * Class BaseException 
 * 自定义异常类的基类 
 */
class BaseException extends Exception {

    public $code        = 400;
    public $msg         = '无效参数';
    public $error_code  = '999';
    public $content     = '';
    public $request_url = '';
    public $log_id = '';
    

    /** 
     * 构造函数，接收一个关联数组 
     * @param array $params 关联数组只应包含code、msg和error_code，且不应该是空值 
     */
    public function __construct($params=[]) {
        if(!is_array($params)){
            return;
        }

        if(array_key_exists('code',$params)){
            $this->code = $params['code'];
        }

        if(array_key_exists('msg',$params)){
            $this->msg = $params['msg'];
        }

        if(array_key_exists('error_code',$params)){
            $this->error_code = (int)$params['error_code'];
        }

        if(array_key_exists('content',$params)){
            $this->content = $params['content'];
        }

        if(array_key_exists('request_url',$params)){
            $this->request_url = $params['request_url'];
        }

        $this->log_id = MyLog::setLogId();
    }

}
